package com.ruoyi.cms.article.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cms.article.domain.CmsArticle;
import com.ruoyi.cms.article.domain.vo.CmsArticleSearchVo;
import com.ruoyi.cms.article.domain.vo.SiteCmsArticleSelectVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 文章管理Mapper接口
 */
public interface CmsArticleMapper extends BaseMapper<CmsArticle> {
    /**
     * 查询文章管理
     *
     * @param id 文章管理主键
     * @return 文章管理
     */
    public CmsArticle selectCmsArticleById(Long id);

    /**
     * 查询文章管理列表
     *
     * @param cmsBlog 文章管理
     * @return 文章管理集合
     */
    public List<CmsArticle> selectCmsArticleList(CmsArticle cmsBlog);


    /**
     * 查询文章管理列表
     *
     * @param vo
     * @return
     */
    public List<CmsArticle> selectCmsArticleVoList(CmsArticleSearchVo vo);





    /**
     * 查询文章管理列表
     *
     * @param vo
     * @return
     */
    //public List<CmsArticle> selectCmsArticleTopVoList(SiteCmsArticleSelectVo vo);


    public List<CmsArticle> selectCmsArticleListBetweenCreateTime(@Param("title") String title, @Param("type") String type, @Param("top") String top, @Param("status") String status, @Param("createTimeBegin") String createTimeBegin, @Param("createTimeEnd") String createTimeEnd, @Param("createBy") String createBy);

    /**
     * 查询推荐文章列表
     */
    public List<CmsArticle> selectCmsArticleListRecommend(CmsArticle cmsBlog);

    /**
     * 按分类查询文章管理列表
     */
    public List<CmsArticle> selectCmsArticleListByTypeId(Long id);

    /**
     * 按标签查询文章管理列表
     */
    public List<CmsArticle> selectCmsArticleListByTagId(Long id);

    /**
     * 新增文章管理
     *
     * @param cmsArticle 文章管理
     * @return 结果
     */
    public int insertCmsArticle(CmsArticle cmsArticle);

    /**
     * 修改文章管理
     *
     * @param cmsArticle 文章管理
     * @return 结果
     */
    public int updateCmsArticle(CmsArticle cmsArticle);

    /**
     * 删除文章管理
     *
     * @param id 文章管理主键
     * @return 结果
     */
    public int deleteCmsArticleById(Long id);

    /**
     * 批量删除文章管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCmsArticleByIds(Long[] ids);


    /**
     * 查询文章列表（网站前台）
     *
     * @param typeId
     * @param count
     * @return
     */
    public List<CmsArticle> selectCmsArticleTopVoListForSite(@Param("typeId") Long typeId, @Param("count") Long count);



    /**
     * 查询文章显示列表
     *
     * @param vo
     * @return
     */
    public List<CmsArticle> selectCmsArticleVoListForSite(SiteCmsArticleSelectVo vo);
}
